RPART Analysis
library("FRESA.CAD")
library(readxl)
library(igraph)
pander::panderOptions('digits', 3)
pander::panderOptions('table.split.table', 400)
pander::panderOptions('keep.trailing.zeros',TRUE)
opo <- par(no.readonly = TRUE)
load("~/GitHub/BSWiMS/TADPOLE_BSWIMS_Results.RData")
op <- opo
Here we will diagnose ADAS13
RPARTml <- rpart::rpart(ADAS13~.,TADPOLECrossMRITrain)
pander::pander(as.matrix(RPARTml$variable.importance))
| M_ST24TA | 17843.5 |
| M_ST24CV | 11509.9 |
| Hippocampus | 11035.4 |
| M_ST29SV | 10790.9 |
| M_ST12SV | 8803.0 |
| M_ST60TA | 5845.0 |
| M_ST40CV | 2701.8 |
| M_ST52TA | 2126.4 |
| M_ST13TA | 1852.5 |
| M_ST31TA | 1804.7 |
| M_ST32TA | 1503.1 |
| M_ST13SA | 1476.9 |
| M_ST52CV | 1252.5 |
| M_ST57TA | 1193.3 |
| M_ST24SA | 1078.3 |
| WholeBrain | 1012.5 |
| M_ST59TA | 1002.0 |
| M_ST32CV | 990.3 |
| M_ST31SA | 967.2 |
| RD_ST31CV | 908.1 |
| RD_ST57TA | 813.0 |
| RD_ST24TA | 740.9 |
| M_ST60CV | 733.1 |
| M_ST45CV | 686.9 |
| M_ST40TA | 683.1 |
| M_ST30SV | 677.7 |
| M_ST56TA | 632.9 |
| M_ST31CV | 613.1 |
| M_ST46CV | 542.1 |
| M_ST129TA | 488.1 |
| M_ST52TS | 486.3 |
| M_ST14TS | 484.3 |
| M_ST16SV | 484.3 |
| RD_ST35TA | 484.3 |
| RD_ST39TS | 484.3 |
| M_ST15TA | 459.6 |
| M_ST49CV | 447.4 |
| RD_ST36TS | 423.8 |
| M_ST129CV | 414.4 |
| M_ST129SA | 414.4 |
| M_ST48SA | 414.4 |
| RD_ST47SA | 414.4 |
| RD_ST49CV | 414.4 |
| M_ST31TS | 405.2 |
| M_ST36TS | 405.2 |
| M_ST13CV | 369.2 |
| M_ST40SA | 369.2 |
| M_ST26TA | 356.9 |
| M_ST48TA | 340.0 |
| M_ST45SA | 317.0 |
| M_ST34TA | 312.2 |
| M_ST58TA | 299.4 |
| M_ST60SA | 287.6 |
| M_ST51TA | 287.2 |
| M_ST15CV | 281.8 |
| M_ST45TA | 281.8 |
| M_ST39CV | 263.9 |
| M_ST62CV | 256.2 |
| M_ST55TA | 237.3 |
| RD_ST62TA | 213.0 |
| M_ST57CV | 191.3 |
| M_ST36TA | 169.5 |
| M_ST32SA | 165.7 |
| M_ST35TA | 143.5 |
| M_ST26SA | 142.0 |
| M_ST59SA | 142.0 |
| RD_ST24TS | 123.5 |
| M_ST43TS | 82.3 |
| M_ST56TS | 82.3 |
| RD_ST56TA | 82.3 |
prreg <- predictionStats_regression(cbind(TADPOLECrossMRITest$ADAS13,predict(RPARTml,TADPOLECrossMRITest)),"ADAS13")
ADAS13
pander::pander(prreg)
corci:
| cor | Â | Â |
|---|---|---|
| 0.615 | 0.567 | 0.659 |
biasci: -0.419, -0.990 and 0.153
RMSEci: 7.74, 7.35 and 8.16
spearmanci:
| 50% | 2.5% | 97.5% |
|---|---|---|
| 0.578 | 0.522 | 0.63 |
MAEci:
| 50% | 2.5% | 97.5% |
|---|---|---|
| 6.01 | 5.66 | 6.37 |
pearson:
| Test statistic | df | P value | Alternative hypothesis | cor |
|---|---|---|---|---|
| 20.7 | 702 | 1.49e-74 * * * | two.sided | 0.615 |
par(op)
par(mar = rep(0.2, 4))
plot(RPARTml,branch = 0.2,uniform = TRUE, compress = TRUE,margin = 0.1)
text(RPARTml,use.n = TRUE,all=TRUE,cex=0.5)
par(op)
TADPOLE_DX_TRAIN$DX <- as.factor(TADPOLE_DX_TRAIN$DX)
RPARTDXml <- rpart::rpart(DX~.,TADPOLE_DX_TRAIN)
#RPARTDXml <- rpart::rpart(DX~.,TADPOLE_DX_TRAIN,
# control = rpart::rpart.control(xval = 10, minbucket = 2, cp = 0.01))
#RPARTDXml <- rpart::prune(RPARTDXml, cp = 0.02)
pander::pander(as.matrix(RPARTDXml$variable.importance))
| M_ST24TA | 37.887 |
| M_ST12SV | 26.613 |
| M_ST24CV | 25.070 |
| M_ST29SV | 20.055 |
| Hippocampus | 19.678 |
| M_ST60TA | 15.080 |
| M_ST26SA | 8.557 |
| M_ST32SA | 7.137 |
| RD_ST46SA | 7.101 |
| RD_ST52TA | 7.009 |
| M_ST32CV | 6.727 |
| M_ST16SV | 6.196 |
| M_ST52TA | 6.080 |
| M_ST57TA | 5.932 |
| M_ST57SA | 5.825 |
| RD_ST15SA | 5.352 |
| RD_ST38CV | 5.248 |
| M_ST54CV | 5.108 |
| RD_ST66SV | 4.964 |
| ST127SV | 4.423 |
| WholeBrain | 4.095 |
| M_ST15SA | 3.893 |
| M_ST31CV | 3.893 |
| M_ST40SA | 3.893 |
| M_ST13TA | 3.658 |
| RD_ST15CV | 3.568 |
| M_ST26CV | 3.427 |
| M_ST52SA | 3.295 |
| M_ST31TA | 3.224 |
| M_ST36TA | 3.160 |
| M_ST56TA | 3.160 |
| M_ST54SA | 3.131 |
| M_ST32TA | 3.090 |
| M_ST39CV | 2.801 |
| M_ST45TS | 2.708 |
| M_ST56CV | 2.708 |
| RD_ST52TS | 2.708 |
| M_ST129TA | 2.528 |
| M_ST50TA | 2.528 |
| M_ST15TS | 2.379 |
| M_ST43CV | 2.379 |
| RD_ST43CV | 2.379 |
| RD_ST43SA | 2.379 |
| M_ST39SA | 2.307 |
| M_ST56SA | 2.187 |
| M_ST60SA | 2.142 |
| M_ST49SA | 1.978 |
| RD_ST38SA | 1.874 |
| RD_ST31CV | 1.869 |
| ST4SV | 1.822 |
| M_ST38SA | 1.758 |
| M_ST48SA | 1.758 |
| M_ST129SA | 1.483 |
| M_ST25TA | 1.402 |
| ST5SV | 1.097 |
| RD_ST31SA | 1.014 |
| RD_ST13CV | 0.937 |
| ST1SV | 0.878 |
| ST3SV | 0.878 |
| RD_ST26CV | 0.750 |
| RD_ST26TA | 0.750 |
| M_ST13SA | 0.676 |
| M_ST52TS | 0.676 |
| M_ST58TS | 0.676 |
| M_ST59TS | 0.676 |
prBin <- predictionStats_binary(cbind(TADPOLE_DX_TEST$DX,predict(RPARTDXml,TADPOLE_DX_TEST)[,2]),"MCI vs Dementia")
MCI vs Dementia
pander::pander(prBin$aucs)
| est | lower | upper |
|---|---|---|
| 0.699 | 0.644 | 0.754 |
pander::pander(prBin$accc)
| est | lower | upper |
|---|---|---|
| 0.702 | 0.654 | 0.748 |
pander::pander(prBin$berror)
| 50% | 2.5% | 97.5% |
|---|---|---|
| 0.408 | 0.354 | 0.461 |
pander::pander(prBin$sensitivity)
| est | lower | upper |
|---|---|---|
| 0.367 | 0.272 | 0.471 |
par(op)
par(mar = rep(0.2, 4))
plot(RPARTDXml,branch = 0.2,uniform = TRUE, compress = TRUE,margin = 0.1)
text(RPARTDXml,use.n = TRUE,all=TRUE,cex=0.75)
par(op)
TADPOLE_DX_NLDE_TRAIN$DX <- as.factor(TADPOLE_DX_NLDE_TRAIN$DX)
RPARTDXmlNLDE <- rpart::rpart(DX~.,TADPOLE_DX_NLDE_TRAIN)
pander::pander(as.matrix(RPARTDXmlNLDE$variable.importance))
| M_ST24TA | 94.64 |
| Hippocampus | 63.53 |
| M_ST29SV | 62.69 |
| M_ST24CV | 61.98 |
| M_ST32TA | 49.87 |
| M_ST12SV | 49.42 |
| M_ST32CV | 16.50 |
| M_ST13TA | 6.24 |
| M_ST30SV | 4.71 |
| RD_ST52TA | 4.19 |
| M_ST40CV | 4.12 |
| M_ST32SA | 3.61 |
| M_ST34CV | 3.14 |
| M_ST13CV | 3.09 |
| M_ST44CV | 1.80 |
| RD_ST26CV | 1.80 |
| M_ST26SA | 1.20 |
| ST3SV | 1.20 |
#RPARTDXmlNLDE <- rpart::rpart(DX~.,TADPOLE_DX_NLDE_TRAIN,
# control = rpart::rpart.control(xval = 10, minbucket = 2, cp = 0.0))
#RPARTDXmlNLDE <- rpart::prune(RPARTDXmlNLDE, cp = 0.02)
prBin <- predictionStats_binary(cbind(TADPOLE_DX_NLDE_TEST$DX,predict(RPARTDXmlNLDE,TADPOLE_DX_NLDE_TEST)[,2]),"NL vs Dementia")
NL vs Dementia
pander::pander(prBin$aucs)
| est | lower | upper |
|---|---|---|
| 0.838 | 0.789 | 0.887 |
pander::pander(prBin$accc)
| est | lower | upper |
|---|---|---|
| 0.835 | 0.786 | 0.877 |
pander::pander(prBin$berror)
| 50% | 2.5% | 97.5% |
|---|---|---|
| 0.205 | 0.154 | 0.254 |
pander::pander(prBin$sensitivity)
| est | lower | upper |
|---|---|---|
| 0.663 | 0.561 | 0.756 |
par(op)
par(mar = rep(0.2, 4))
plot(RPARTDXmlNLDE,branch = 0.2,uniform = TRUE, compress = TRUE,margin = 0.1)
text(RPARTDXmlNLDE,use.n = TRUE,all=TRUE,cex=0.75)
par(op)
bConvml <- rpart::rpart(Surv(TimeToEvent,status)~.,TADPOLE_Conv_TRAIN)
pander::pander(as.matrix(bConvml$variable.importance))
| ADAS13 | 92.05 |
| FAQ | 75.30 |
| ADAS11 | 75.06 |
| Hippocampus | 57.90 |
| RAVLT_perc_forgetting | 43.90 |
| RAVLT_immediate | 42.96 |
| M_ST24TA | 42.74 |
| RD_ST13TA | 29.83 |
| M_ST12SV | 29.82 |
| WholeBrain | 29.22 |
| M_ST40CV | 28.54 |
| M_ST29SV | 21.52 |
| M_ST58TA | 18.90 |
| M_ST31CV | 18.02 |
| M_ST35TA | 14.44 |
| RD_ST55TA | 13.23 |
| RD_ST12SV | 12.30 |
| M_ST51SA | 11.53 |
| M_ST13CV | 11.32 |
| RD_ST16SV | 10.27 |
| M_ST45SA | 10.23 |
| M_ST26CV | 9.27 |
| M_ST40SA | 9.27 |
| RD_ST58TA | 8.97 |
| M_ST58CV | 8.92 |
| ICV | 8.75 |
| ST10CV | 8.75 |
| M_ST43TA | 8.48 |
| RD_ST14SA | 8.43 |
| M_ST52CV | 8.29 |
| M_ST26TA | 8.24 |
| M_ST32TA | 8.24 |
| M_ST44TS | 8.20 |
| M_ST59TA | 8.01 |
| M_ST36CV | 7.72 |
| M_ST13TA | 7.44 |
| M_ST14CV | 7.23 |
| RD_ST47CV | 6.94 |
| RD_ST55CV | 6.94 |
| M_ST16SV | 6.71 |
| M_ST56SA | 6.49 |
| M_ST11SV | 6.02 |
| RD_ST57TS | 6.02 |
| ST128SV | 5.95 |
| ST68SV | 5.95 |
| M_ST25TA | 5.29 |
| M_ST48SA | 5.29 |
| Gender | 5.22 |
| M_ST34TA | 5.22 |
| M_ST45CV | 5.11 |
| M_ST24CV | 4.54 |
| M_ST49SA | 4.32 |
| RD_ST51TA | 4.32 |
| M_ST46TS | 4.29 |
| M_ST32SA | 3.90 |
| M_ST46SA | 3.90 |
| M_ST57TS | 3.90 |
| RD_ST31SA | 3.78 |
| M_ST47SA | 2.94 |
| M_ST60SA | 2.94 |
| RD_ST39CV | 2.94 |
| ST2SV | 2.94 |
| ST6SV | 2.94 |
| M_ST51TA | 2.83 |
| M_ST52TA | 2.83 |
| M_ST56TA | 2.83 |
| RD_ST60SA | 2.56 |
| M_ST52SA | 1.92 |
ptestr <- predict(bConvml,TADPOLE_Conv_TEST)
ptestl <- log(ptestr)
boxplot(ptestl~TADPOLE_Conv_TEST$status)
boxplot(ptestr~TADPOLE_Conv_TEST$status)
par(op)
par(mar = rep(0.2, 4))
plot(bConvml,branch = 0.2,uniform = TRUE, compress = TRUE,margin = 0.1)
text(bConvml,use.n = TRUE,all=TRUE,cex=0.75)
par(op)
perdsurv <- cbind(TADPOLE_Conv_TEST$TimeToEvent,
TADPOLE_Conv_TEST$status,
ptestl,
ptestr)
if (max(ptestl)>0 && min(ptestl)<0 )
{
prSurv <- predictionStats_survival(perdsurv,"MCI to AD Conversion")
pander::pander(prSurv$CIRisk)
pander::pander(prSurv$CILp)
pander::pander(prSurv$spearmanCI)
}
| 50% | 2.5% | 97.5% |
|---|---|---|
| 0.269 | 0.0864 | 0.452 |
prBin <- predictionStats_binary(cbind(TADPOLE_Conv_TEST$status,ptestl),"MCI to AD Conversion")
MCI to AD Conversion
par(op)
pander::pander(prBin$aucs)
| est | lower | upper |
|---|---|---|
| 0.736 | 0.675 | 0.797 |
pander::pander(prBin$CM.analysis$tab)
| Â | Outcome + | Outcome - | Total |
|---|---|---|---|
| Test + | 66 | 60 | 126 |
| Test - | 32 | 115 | 147 |
| Total | 98 | 175 | 273 |
The decorrelation
| 50% | 2.5% | 97.5% |
|---|---|---|
| 0.257 | 0.0579 | 0.437 |
prBin <- predictionStats_binary(cbind(TADPOLE_Conv_TESTD$status,ptestl),"MCI to AD Conversion")
MCI to AD Conversion
pander::pander(prBin$aucs)
| est | lower | upper |
|---|---|---|
| 0.711 | 0.648 | 0.774 |
pander::pander(prBin$CM.analysis$tab)
| Â | Outcome + | Outcome - | Total |
|---|---|---|---|
| Test + | 82 | 77 | 159 |
| Test - | 16 | 98 | 114 |
| Total | 98 | 175 | 273 |
par(op)
par(mar = rep(0.2, 4))
plot(bConvmlD,branch = 0.2,uniform = TRUE, compress = TRUE,margin = 0.1)
text(bConvmlD,use.n = TRUE,all=TRUE,cex=0.75)
par(op)
.